package com.library.books.mapper;

import com.library.system.domain.dto.SysDataPanelLendBookCountDto;
import com.library.system.domain.dto.SysDataPanelOverdueBookRecordCountDto;
import com.library.system.domain.dto.SysDataPanelReturnBookCountDto;
import com.library.system.domain.dto.SysHomeLendCountDto;
import com.library.system.domain.vo.datapanel.SysDataPanelLendBookCountVo;
import com.library.system.domain.vo.datapanel.SysDataPanelOverdueRecordBookCountVo;
import com.library.system.domain.vo.datapanel.SysDataPanelReturnBookCountVo;
import com.library.system.domain.vo.home.SysHomeLendCountVo;
import com.library.system.domain.vo.home.SysHomeTypeCountVo;

import java.util.List;

/**
 * @Package: com.library.books.mapper
 * @ClassName: ISysHomeMapper
 * @Author: Yin
 * @Date: 11:19
 * @Description: 首页
 */
public interface SysCountMapper {

    /** 查询当前未软删除的书籍副本数量 */
    Long selectCurrentLifeBooksNumber();

    /** 查询当前借阅的书籍副本数量 */
    Long selectCurrentLifeLendBooksNumber();

    /** 查询学生总数量*/
    Long selectStudentTotalNumber();

    /** 查询学生借阅书籍次数 */
    Long selectBorrowBooksNumber();

    /** 查询月份统计的借阅情况
     *  - 借出
     *  - 归还
     * */
    List<SysHomeLendCountVo> selectLendBooksCount(SysHomeLendCountDto dto);

    /**
     * 查询编目中国图书法分类统计
     *  - 跟字典扯到关系
     */
    List<SysHomeTypeCountVo> selectBooksTypeCount();

    /**
     * 查询数据面板 书籍借阅统计
     */
    List<SysDataPanelLendBookCountVo> selectDataPanelLendBooksCount(SysDataPanelLendBookCountDto dto);

    /**
     * 查询数据面板 书籍归还统计
     */
    List<SysDataPanelReturnBookCountVo> selectDataPanelReturnBooksCount(SysDataPanelReturnBookCountDto lend);

    /**
     * 查询数据面板 书籍逾期记录统计
     */
    List<SysDataPanelOverdueRecordBookCountVo> selectDataPanelOverdueBooksRecordCount(SysDataPanelOverdueBookRecordCountDto overdue);
}
